def decorator1(func):
    print("decorator1 before")

    def wrapper():
        print("Decorator 1")
        func()
        print("Decorator 1 end")

    return wrapper


def decorator2(func):
    print("decorator2 before")

    def wrapper():
        print("Decorator 2")
        func()
        print("Decorator 2 end")

    return wrapper


def decorator3(func):
    print("decorator3 before")

    def wrapper():
        print("Decorator 3")
        func()
        print("Decorator 3 end")

    return wrapper


@decorator1
@decorator2
@decorator3
def say_hello():
    print("Hello, world!")


say_hello()
